再一次,javascript设计模式与开发实践-最少知识原则

定义

某军队中的将军需要挖掘一些散兵坑,下面是完成任务的一种方式:

将军通知上校,上校通知上尉,上尉通知军士,最后军士叫来士兵,让士兵来挖一些散兵坑。

将军根本不必考虑挖散兵坑的细节信息,只要通知下属就好了,

减少对象之间的联系

在程序中,对象的“朋友”多并不是一件好事,“城门失火,殃及池鱼”和“一人犯法,株连九族”的事情时有发生..
最少知识原则要求我们在设计程序时,应当尽可能的减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不要发生直接的相互联系。
常见的做法是引入一个第三者对象来承担这些对象之间的通信。

封装在最少知识原则中的体现

封装在很大程序上表达的是数据的隐藏,一个模块或者对象可以将内部的数据或者实现细节隐藏起来,只暴露必要的接口API供外界访问,这样我们可以让对象只暴露必要的接口,从而当对象之间的联系限制在最小的范围内。